/****************************************************************************
**
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
** plug-in (the software contained herein), in binary form, solely for the
** purpose of creating code to be used with Trolltech's Qt software.
**
** Qt Designer is licensed under the terms of the GNU General Public
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
** right to use certain no GPL licensed software under the terms of its GPL
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
**
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** Since we now have the GPL exception I think that the "special exception
** is no longer needed. The license text proposed above (other than the
** special exception portion of it) is the BSD license and we have added
** the BSD license as a permissible license under the exception.
**
****************************************************************************/

#include "writexml.h"

#include <QDomDocument>
#include <QDomElement>
#include <QDomNodeList>
#include <QFile>
#include <QTextStream>
#include <QtGui/QMessageBox>

writexml::writexml(QWidget *parent)
    : QWidget(parent)
{
	ui.setupUi(this);
	//connect(parseXML, SIGNAL(clicked()),this, SLOT(parseXML()));
}

writexml::~writexml()
{

}

void writexml::on_pushButton_clicked(){
	QFile file("qq.txt");
	    if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){
	        QMessageBox::critical(this,
	                              "QXSRExample::parseXML",
	                              "Couldn't open write example.xml",
	                              QMessageBox::Ok);
	        return;
	    }
	    QTextStream out(&file);
	    out << "test";
	 
	    // optional, as QFile destructor will already do it:
	    file.close(); 
	/*
	QFile* file = new QFile(":/xml/example.xml");
	    if (!file->open(QIODevice::ReadOnly | QIODevice::Text)) {
	        QMessageBox::critical(this,
	                              "QXSRExample::parseXML",
	                              "Couldn't open example.xml",
	                              QMessageBox::Ok);
	        return;
	    }
	    QList< QMap<QString,QString> > persons;
	        
	        QDomDocument doc("mydocument"); 
	        if (!doc.setContent(file)) 
	        {          
	        QMessageBox::critical(this,
	                              "QXSRExample::parseXML",
	                              "Couldn't read example.xml",
	                              QMessageBox::Ok);
	        	return;      
	    	}     

	        QDomElement docElem = doc.documentElement(); 
	        
	    	QString rootTag = docElem.tagName(); // == persons
	             
	    	QDomNode qdn = docElem.firstChild();
	    	QDomNode qdn1 = qdn.firstChild();
			qdn1.setNodeValue("testtt");
	    	file->close();
	    	file = new QFile(":/xml/example.xml");
		    if (!file->open(QIODevice::WriteOnly | QIODevice::Text)) {
		        QMessageBox::critical(this,
		                              "QXSRExample::parseXML",
		                              "Couldn't open write example.xml",
		                              QMessageBox::Ok);
		        return;
		    }
			QTextStream out(file);
			doc.save(out,4);
	    	file->close();*/
}
void writexml::on_pushButton_2_clicked(){

    QFile file("qq.txt");
    /*
        file.open(QIODevice::WriteOnly | QIODevice::Text);
        QTextStream out(&file);
        out << "This file is generated by Qt\n";
     
        // optional, as QFile destructor will already do it:
        file.close(); 
        */
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){

    QMessageBox::critical(this,
                          "QXSRExample::parseXML",
                          "Couldn't open read example.xml",
                          QMessageBox::Ok);
    return;
    }
    QTextStream in(&file);
    QChar ch;
    in>>ch;
    QString aa(ch);
    this->SetText(aa);
 
    // optional, as QFile destructor will already do it:
    file.close(); 
	/*
	QFile* file = new QFile(":/xml/example.xml");
	    if (!file->open(QIODevice::ReadOnly | QIODevice::Text)) {
	        QMessageBox::critical(this,
	                              "QXSRExample::parseXML",
	                              "Couldn't open example.xml",
	                              QMessageBox::Ok);
	        return;
	    }
	    QList< QMap<QString,QString> > persons;
	        
	        QDomDocument doc("mydocument"); 
	        //QString a="ssss";
	        //doc.setContent(a,false);
	        if (!doc.setContent(file)) 
	        {          
	        QMessageBox::critical(this,
	                              "QXSRExample::parseXML",
	                              "Couldn't read example.xml",
	                              QMessageBox::Ok);
	        	return;      
	    	}     

	        QDomElement docElem = doc.documentElement(); 
	        
	        // you could check the root tag name here if it matters
	    	QString rootTag = docElem.tagName(); // == persons
	             
	    	// get the node's interested in, this time only caring about person's
	    	QDomNode qdn = docElem.firstChild();
	    	QDomNode qdn1 = qdn.firstChild();
	    	this->SetText(qdn1.toElement().text());
	    	file->close();*/
	
}

void writexml::SetText(QString astr){
	this->ui.label->setText(astr);
}
